package leetcode.year2021.month10;

import java.awt.image.WritableRaster;
import java.util.HashMap;
import java.util.Map;

//32. 最长有效括号
public class _12_01LongestValidParentheses32 {
  public static void main(String[] args) {
    String s = ")()())";
    System.out.println(longestValidParentheses(s));
  }
  public static int longestValidParentheses(String s) {  //时间好长的答案 从每个值出发，求到最大长度
    if (s.length() == 0){
      return 0;
    }

    char[] chars = s.toCharArray();

    int ans = 0;
    int sum = 0;
    int right = 0;

    for (int i = 0; i < chars.length; i++) {
      sum = 0;
      right = i;
      Character temp;
      while (right < chars.length){
        temp=chars[right];
        right++;
        if (temp == '('){
          sum++;
          continue;
        } else {
          sum--;
        }
        if (sum == 0){
          ans = Math.max(ans, right - i);
        }
        if (sum < 0){
          break;
        }
      }
    }
    return ans;
  }

  /**
   * 给你一个只包含 '(' 和 ')' 的字符串，找出最长有效（格式正确且连续）括号子串的长度。
   *
   *  
   *
   * 示例 1：
   *
   * 输入：s = "(()"
   * 输出：2
   * 解释：最长有效括号子串是 "()"
   * 示例 2：
   *
   * 输入：s = ")()())"
   * 输出：4
   * 解释：最长有效括号子串是 "()()"
   * 示例 3：
   *
   * 输入：s = ""
   * 输出：0
   *
   */
}
